package com.bbzn.device.client.vo.req;

import com.bbzn.device.client.dataobject.FlowNode;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Getter
@Setter
@ToString
@ApiModel(value="审批对象", description="审批对象")
public class AuditVO implements Serializable {
    private static final long serialVersionUID = 3983894006815149338L;

    /**
     * 用户类型
     */
    @ApiModelProperty(value = "用户类型 0-被监管人 1-监管人 2-租户", example = "1",required = true)
    private Integer flowNodeLevel;
    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID", example = "1",required = true)
    private Long userId;

    /**
     * 用户ID
     */
    @ApiModelProperty(value = "任务序号", example = "1",required = true)
    private String orderNo;

    /**
     * 用户ID
     */
    private List<FlowNode> flowNodes;

    /**
     * 用户ID
     */
    @ApiModelProperty(value = "流程节点Id", example = "1",required = true)
    private Long flewId;

    /**
     * 流程名称
     */
    @ApiModelProperty(value = "流程名称", example = "1",required = true)
    private String flewName;

    /**
     * 请假单类型
     */
    @ApiModelProperty(value = "请假单类型 1-事假 2-病假 3-工伤假 4-婚假 5-产假 6-丧假", example = "1",required = true)
    private Integer formType;

    /**
     * 开始时间
     */
    @ApiModelProperty(value = "开始时间", example = "2021-09-10 12:00:00",required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "结束时间", example = "2021-09-11 12:00:00",required = true)
    private Date endTime;

    /**
     * 理由
     */
    @ApiModelProperty(value = "理由", example = "回家",required = true)
    private String reason;

    /**
     * 请假单ID
     */
    @ApiModelProperty(value = "请假单ID", example = "1",required = true)
    private Long formId;

    /**
     * 审批结果
     */
    @ApiModelProperty(value = "审批结果  1 批准 2 驳回", example = "1",required = true)
    private Integer result;


    @ApiModelProperty(value = "当前页",example = "0",required = true)
    private Integer pageNum = 1;

    /**
     * 每页显示的记录数
     */
    @ApiModelProperty(value = "每页显示的记录数",example = "10",required = true)
    private Integer pageSize = 10;

    /**
     * 外出地址
     */
    @ApiModelProperty(value = "外出地址")
    private String address;


    /**
     * 设备imei号
     */
    @ApiModelProperty(value = "设备imei号")
    private String imei;
}
